import request from '@/utils/request'

export default class ApiSetting {

 /**
   * 管理员列表
   * @param {*} params
   * @returns 
   */
  static adminList(params) {
    return request({
      url: `/admin/system-user`,
      method: 'get',
      params
    })
  }
  // 添加管理员
  static adminAdd(data) {
    return request({
      url: `/admin/system-user`,
      method: 'post',
      data
    })
  } 
  /**
   * 删除管理员
   * @param id
   * @returns 
   */
  static adminDel(id) {
    return request({
      url: `/admin/system-user` + '/' + id,
      method: 'delete'
    })
  }

  /**
   * 管理员编辑
   * @param {*} data 
   * @returns 
   */
  static adminEdit(data) {
    return request({
      url: `/admin/system-user`,
      method: 'put',
      data
    })
  }

  /**
   * 管理员信息
   * @param {*} id 
   * @returns 
   */
  static adminInfo(id) {
    return request({
      url: `/admin/system-user` + '/' + id,
      method: 'get'
    })
  }







  // 获取菜单
  static getSystemMenu(is_all=0) {
    return request({
      url: '/admin/shopSysMenu-list',
      method: 'post',
      params: {
        'is_all':is_all
      }
    })
  }
  // 删除菜单 id 父id
  static systemMenuDel(id) {
    return request({
      url: '/admin/shopSysMenu-del',
      method: 'post',
      params: { id }
    })
  }

  // 添加菜单
  static systemMenuAdd(data) {
    return request({
      url: '/admin/shopSysMenu-add',
      method: 'post',
      params: data
    })
  }
  // 编辑菜单
  static systemMenuEdit(data) {
    return request({
      url: '/admin/shopSysMenu-edit',
      method: 'post',
      params: data
    })
  }

  /**
   * 获取角色列表
   * @param {*} params 
   * @returns 
   */
  static systemAuthList(params) {
    return request({
      url: '/admin/role',
      method: 'get',
      params
    })
  }
  
  // 角色添加
  static systemAuthAdd({ title, usr_id, remark, status, auth }) {
    return request({
      url: `/admin/shopSysAuth-add`,
      method: 'post',
      params: {
        title, usr_id, remark, status, auth
      }
    })
  }

  // 角色编辑
  static systemAuthInfo(id) {
    return request({
      url: `/admin/shopSysAuth-info`,
      method: 'post',
      params: { id }
    })
  }
  // 角色删除
  static systemAuthDel(id) {
    return request({
      url: `/admin/shopSysAuth-del`,
      method: 'post',
      params: { id }
    })
  }

  // 角色更新
  static systemAuthSave({ title, id, auth, status, remark }) {
    return request({
      url: `/admin/shopSysAuth-save`,
      method: 'post',
      params: { title, id, auth, status, remark }
    })
  }

  // 超级管理员更新其他管理员
  static adminCheck({ admin_id, status }) {
    return request({
      url: `/admin/admin/sys/user/check`,
      method: 'post',
      params: { admin_id, status }
    })
  }

  // 管理员修改密码
  static adminPasswordUpdate({ id, password }) {
    return request({
      url: `/admin/shopSysAccount-psw`,
      method: 'post',
      params: { id, password }
    })
  }

  /**
   * @param fileList 数组或对象 如果传数组 请先对数组每一项添加 fileIndex 作为自定义文件下标，
   * 否则默认file为下标，如果是对则遍历key作为文件下标
   *
   * */
  static getFormData(fileList, data) {
    const formData = new FormData() //  用FormData存放上传文件
    if (Array.isArray(fileList)) {
      fileList.forEach((file) => {
        // 再传进来前先对fileList的每一项添加fileName属性
        const fileIndex = file.fileIndex ? file.fileIndex : 'file'
        formData.append(fileIndex, file.raw)
      })
    } else {
      // 对象传值，先手动创建相应的key再传进来
      Object.keys(fileList).forEach((item) => {
        const fileName = item || 'file'
        formData.append(fileName, fileList[item])
      })
    }

    // 额外参数
    Object.keys(data).forEach((item) => {
      let checkedData = ''
      if (toString.call(data[item]) === '[object Object]') {
        checkedData = JSON.stringify(data[item])
      } else {
        checkedData = data[item]
      }

      formData.append(item, checkedData)
    })
    console.log('表单000000000000》》》》', formData.values())
    return formData
  }
  // 上传头像
  static adminImagUpload(fileName, file, cb = null) {
    console.log(fileName, file)
    const formData = new FormData() //  用FormData存放上传文件
    formData.append('file', file)
    console.log(formData.get('file'))
    return request({
      // headers: {
      //   'Content-Type': 'multipart/form-data'
      // },
      url: `/adminapi/upload`,
      method: 'post',
      params: formData,
      onUploadProgress: cb
    })
  }

//  获取创建人 /admin/shopSysAccount-founder
  static getShopSysAccountFounder({ keyword,limit,page}) {
    return request({
      url: `/admin/shopSysAccount-founder`,
      method: 'post',
      params: { keyword,limit,page}
    })
  }
}

